home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue34 / clinic / LoopyU.pas < prev   
Pascal/Delphi Source File  |  1998-02-06  |  4KB  |  163 lines

  1. unit LoopyU;
  2.  
  3. interface
  4.  
  5. uses
  6.   WinProcs, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, ExtCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Panel1: TPanel;
  12.     Panel2: TPanel;
  13.     GroupBox1: TGroupBox;
  14.     Edit1: TEdit;
  15.     Edit2: TEdit;
  16.     Edit3: TEdit;
  17.     ListBox1: TListBox;
  18.     RadioGroup1: TRadioGroup;
  19.     Button1: TButton;
  20.     Button2: TButton;
  21.     Button3: TButton;
  22.     Button4: TButton;
  23.     Button5: TButton;
  24.     Button6: TButton;
  25.     procedure FormCreate(Sender: TObject);
  26.     procedure FormDestroy(Sender: TObject);
  27.     procedure Button1Click(Sender: TObject);
  28.     procedure Button2Click(Sender: TObject);
  29.     procedure Button3Click(Sender: TObject);
  30.     procedure Button4Click(Sender: TObject);
  31.     procedure Button5Click(Sender: TObject);
  32.     procedure Button6Click(Sender: TObject);
  33.   public
  34.     EditList: TList;
  35.     EditArray: array[1..3] of TEdit;
  36.   end;
  37.  
  38. var
  39.   Form1: TForm1;
  40.  
  41. implementation
  42.  
  43. {$R *.DFM}
  44.  
  45. procedure ListControls(Control: TWinControl; List: TStrings);
  46. var
  47.   Loop: Integer;
  48. begin
  49.   for Loop := 0 to Control.ControlCount - 1 do
  50.   begin
  51.     with Control.Controls[Loop] do
  52.       List.Add(Format('%s: %s', [Name, ClassName]));
  53.     if Control.Controls[Loop] is TWinControl then
  54.       ListControls(TWinControl(Control.Controls[Loop]), List)
  55.   end
  56. end;
  57.  
  58. procedure ListComponents(Component: TComponent; List: TStrings);
  59. var
  60.   Loop: Integer;
  61. begin
  62.   for Loop := 0 to Component.ComponentCount - 1 do
  63.   begin
  64.     with Component.Components[Loop] do
  65.       List.Add(Format('%s: %s', [Name, ClassName]));
  66.     ListComponents(Component.Components[Loop], List)
  67.   end
  68. end;
  69.  
  70. procedure TForm1.FormCreate(Sender: TObject);
  71. var
  72.   Loop: Integer;
  73. begin
  74. {  EditArray[1] := Edit1;
  75.   EditArray[2] := Edit2;
  76.   EditArray[3] := Edit3; }
  77.   for Loop := 1 to 3 do
  78.     EditArray[Loop] := FindComponent('Edit' + IntToStr(Loop)) as TEdit;
  79.   EditList := TList.Create;
  80. {  EditList.Add(Edit1);
  81.   EditList.Add(Edit2);
  82.   EditList.Add(Edit3); }
  83.   for Loop := 1 to 3 do
  84.     EditList.Add(FindComponent('Edit' + IntToStr(Loop)));
  85. end;
  86.  
  87. procedure TForm1.FormDestroy(Sender: TObject);
  88. begin
  89.   EditList.Free;
  90.   EditList := nil
  91. end;
  92.  
  93. procedure TForm1.Button1Click(Sender: TObject);
  94. var
  95.   Loop: Integer;
  96.   Msg: String;
  97. begin
  98.   Msg := '';
  99.   for Loop := 1 to 3 do
  100.     Msg := Msg + EditArray[Loop].Text;
  101.   ShowMessage(Msg)
  102. end;
  103.  
  104. procedure TForm1.Button2Click(Sender: TObject);
  105. var
  106.   Loop: Integer;
  107.   Msg: String;
  108. begin
  109.   Msg := '';
  110.   for Loop := 0 to EditList.Count - 1 do
  111.     Msg := Msg + TEdit(EditList[Loop]).Text;
  112.   ShowMessage(Msg)
  113. end;
  114.  
  115. procedure TForm1.Button3Click(Sender: TObject);
  116. var
  117.   Loop: Integer;
  118.   Msg: String;
  119. begin
  120.   Msg := '';
  121.   for Loop := 0 to ComponentCount - 1 do
  122.     if Components[Loop] is TEdit then
  123.       Msg := Msg + TEdit(Components[Loop]).Text;
  124.   ShowMessage(Msg)
  125. end;
  126.  
  127. procedure TForm1.Button4Click(Sender: TObject);
  128.  
  129.   procedure LoopEdits(Ctl: TWinControl; var Msg: String);
  130.   var
  131.     Loop: Integer;
  132.   begin
  133.     for Loop := 0 to Ctl.ControlCount - 1 do
  134.     begin
  135.       if Ctl.Controls[Loop] is TEdit then
  136.         Msg := Msg + TEdit(Ctl.Controls[Loop]).Text;
  137.       if Ctl.Controls[Loop] is TWinControl then
  138.         LoopEdits(TWinControl(Ctl.Controls[Loop]), Msg)
  139.     end
  140.   end;
  141.  
  142. var
  143.   Msg: String;
  144. begin
  145.   Msg := '';
  146.   LoopEdits(Self, Msg);
  147.   ShowMessage(Msg)
  148. end;
  149.  
  150. procedure TForm1.Button5Click(Sender: TObject);
  151. begin
  152.   ListBox1.Items.Clear;
  153.   ListControls(Self, ListBox1.Items)
  154. end;
  155.  
  156. procedure TForm1.Button6Click(Sender: TObject);
  157. begin
  158.   ListBox1.Items.Clear;
  159.   ListComponents(Self, ListBox1.Items)
  160. end;
  161.  
  162. end.
  163.